package com.kaifamiao.wrapper;

/**
 * 将用字符串表示的数值转换成基本数据类型的数值
 * 1、除Character外其它包装类都有将字符串解析为相应基本数据类型数值的方法:
 *        public static primitive parsePrimitive( String s )
 *        这里的 primitive 可以是 byte、short、int、long、float、double、boolean
 * 2、整数类型对应的四个包装类还定义了另外一个 parsePrimitive 方法:
 *        public static primitive parsePrimitive( String s , int radix )
 *        这里的 primitive 可以是 byte、short、int、long、
 */
public class StringToPrimitive {

    public static void main(String[] args) {

        String s = "100";
        // 将字符串按照十进制解析为 byte 类型的数值
        System.out.println( Byte.parseByte( s ) );
        // 将字符串按照二进制解析为 byte 类型的数值
        System.out.println( Byte.parseByte( s , 2 ) );
        // 将字符串按照八进制解析为 byte 类型的数值
        System.out.println( Byte.parseByte( s , 8 ) );

        // 将字符串按照十进制解析为 short 类型的数值
        System.out.println( Short.parseShort( s ) );
        // 将字符串按照十六进制解析为 short 类型的数值
        System.out.println( Short.parseShort( s , 16 ) );

        // 将字符串按照十进制解析为 int 类型的数值
        System.out.println( Integer.parseInt( s ) );
        // 将字符串按照十六进制解析为 int 类型的数值
        System.out.println( Integer.parseInt( s , 16 ) );

        // 将字符串按照十进制解析为 long 类型的数值
        System.out.println( Long.parseLong( s ) );
        // 将字符串按照十六进制解析为 long 类型的数值
        System.out.println( Long.parseLong( s , 16 ) );

        // 将字符串表示的数值解析为 float 类型的数值
        System.out.println( Float.parseFloat( s ) );

        // 将字符串表示的数值解析为 double 类型的数值
        System.out.println( Double.parseDouble( s ) );

        // 将字符串表示的数值解析为 boolean 类型的数值
        // 只有 "true" 被解析为 true ( 其中 "true" 不区分大小写 )
        // 其它字符串统统解析为 false
        System.out.println( Boolean.parseBoolean( s ) );

    }

}
